/**
 * 给定一个二叉搜索树root(BST)，请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。
 *
 * 提醒一下， 二叉搜索树 满足下列约束条件：
 *
 * 节点的左子树仅包含键 小于 节点键的节点。
 * 节点的右子树仅包含键 大于 节点键的节点。
 * 左右子树也必须是二叉搜索树。
 *
 * 链接：https://leetcode.cn/problems/binary-search-tree-to-greater-sum-tree
 */
class BstToGst {
    int sum=0;
    public TreeNode bstToGst(TreeNode root) {
        travel(root);
        return root;
    }
    public void travel(TreeNode root) {
        if(root==null) {
            return;
        }
        travel(root.right);
        sum+=root.val;
        root.val=sum;
        travel(root.left);
    }
}